package com.wf.controller;

import cn.hutool.core.util.CreditCodeUtil;
import com.wf.domain.EnterpriseInfo;
import com.wf.exception.ApartmentException;
import com.wf.service.EnterpriseInfoService;
import com.wf.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 企业信息接口
 *
 * @author mpk
 * @since 2024/9/11 15:38:38
 */
@RestController
@RequestMapping("/app/enterprise")
@CrossOrigin
public class EnterpriseController {

    /**
     * 企业信息业务服务层
     */
    @Autowired
    EnterpriseInfoService enterpriseInfoService;

    /**
     * 处理POST请求，用于保存企业信息。
     *
     * @param enterpriseInfo 从请求体中获取的企业信息对象
     * @return 保存操作的结果，包含操作是否成功的标志
     */
    @PostMapping
    public Result insertEnterpriseInfo(@RequestBody EnterpriseInfo enterpriseInfo){

        boolean creditCode = CreditCodeUtil.isCreditCode(enterpriseInfo.getEnterNumber());
        if (!creditCode){
            return Result.failure("企业信用代码不合法");
        }else
        {
            // 尝试保存企业信息到数据库
            boolean save = enterpriseInfoService.save(enterpriseInfo);
            // 返回保存结果
            return Result.success(save);
        }

    }
    @PostMapping("/invoice/{manageId}")
    public Result invoiceRequest(@PathVariable String manageId) throws ApartmentException {

        enterpriseInfoService.setInvoice(manageId);

        return Result.success();
    }

    /**
     * 判断用户是否是企业用户
     */
    @GetMapping("/isCompany")
    public Result isCompany() {

        boolean flag = enterpriseInfoService.isCompany();

        return Result.success(flag);

    }
}